Skip to content

Commit fd891be

Browse files
authored
Merge whisperfile into llamafile (#517)
1 parent 25ceb2c commit fd891be

17 files changed

+25819
-1
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ include build/rules.mk
1414
include llamafile/BUILD.mk
1515
include llama.cpp/BUILD.mk
1616
include stable-diffusion.cpp/BUILD.mk
17+
include whisper.cpp/BUILD.mk
1718
include double-conversion/BUILD.mk
1819
include stb/BUILD.mk
1920

@@ -22,6 +23,8 @@ include stb/BUILD.mk
2223
.PHONY: o/$(MODE)/
2324
o/$(MODE)/: o/$(MODE)/llamafile \
2425
o/$(MODE)/llama.cpp \
26+
o/$(MODE)/stable-diffusion.cpp \
27+
o/$(MODE)/whisper.cpp \
2528
o/$(MODE)/stb \
2629
o/$(MODE)/depend.test
2730

llama.cpp/ggml-backend.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1867,6 +1867,15 @@ int ggml_backend_sched_get_n_copies(ggml_backend_sched_t sched) {
18671867
return sched->n_copies;
18681868
}
18691869

1870+
int ggml_backend_sched_get_n_backends(ggml_backend_sched_t sched) {
1871+
return sched->n_backends;
1872+
}
1873+
1874+
ggml_backend_t ggml_backend_sched_get_backend(ggml_backend_sched_t sched, int i) {
1875+
GGML_ASSERT(i >= 0 && i < sched->n_backends);
1876+
return sched->backends[i];
1877+
}
1878+
18701879
size_t ggml_backend_sched_get_buffer_size(ggml_backend_sched_t sched, ggml_backend_t backend) {
18711880
int backend_index = ggml_backend_sched_backend_id(sched, backend);
18721881
GGML_ASSERT(backend_index >= 0 && backend_index < sched->n_backends);

llama.cpp/ggml-backend.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,9 @@ extern "C" {
182182
// Initialize backend buffers from a measure graph
183183
GGML_API bool ggml_backend_sched_reserve(ggml_backend_sched_t sched, struct ggml_cgraph * measure_graph);
184184

185+
GGML_API int ggml_backend_sched_get_n_backends(ggml_backend_sched_t sched);
186+
GGML_API ggml_backend_t ggml_backend_sched_get_backend(ggml_backend_sched_t sched, int i);
187+
185188
// Get the number of splits of the last graph
186189
GGML_API int ggml_backend_sched_get_n_splits(ggml_backend_sched_t sched);
187190
GGML_API int ggml_backend_sched_get_n_copies(ggml_backend_sched_t sched);

llamafile/llamafile.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ struct llamafile *llamafile_open_gguf(const char *fname, const char *mode) {
294294
errno = EIO;
295295
return 0;
296296
}
297-
if (ZIP_READ32(buf) == ZIP_READ32("GGUF")) {
297+
if (ZIP_READ32(buf) == ZIP_READ32("GGUF") || ZIP_READ32(buf) == ZIP_READ32("ggml")) {
298298
errno = EINVAL;
299299
return file;
300300
}
@@ -312,6 +312,16 @@ size_t llamafile_size(struct llamafile *file) {
312312
return file->size;
313313
}
314314

315+
size_t llamafile_position(struct llamafile *file) {
316+
return file->position;
317+
}
318+
319+
bool llamafile_eof(struct llamafile *file) {
320+
if (file->fp)
321+
return feof(file->fp);
322+
return file->position >= file->size;
323+
}
324+
315325
void *llamafile_content(struct llamafile *file) {
316326
return file->content;
317327
}

llamafile/llamafile.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ bool llamafile_seek(struct llamafile *, size_t, int);
4747
void *llamafile_content(struct llamafile *);
4848
size_t llamafile_tell(struct llamafile *);
4949
size_t llamafile_size(struct llamafile *);
50+
size_t llamafile_position(struct llamafile *);
51+
bool llamafile_eof(struct llamafile *file);
5052
FILE *llamafile_fp(struct llamafile *);
5153
void llamafile_ref(struct llamafile *);
5254
void llamafile_unref(struct llamafile *);

whisper.cpp/BUILD.mk

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐
2+
#── vi: set noet ft=make ts=8 sw=8 fenc=utf-8 :vi ────────────────────┘
3+
4+
PKGS += WHISPER_CPP
5+
6+
WHISPER_CPP_FILES := $(wildcard whisper.cpp/*.*)
7+
WHISPER_CPP_HDRS = $(filter %.h,$(WHISPER_CPP_FILES)) \
8+
$(filter %.hpp,$(WHISPER_CPP_FILES))
9+
WHISPER_CPP_INCS = $(filter %.inc,$(WHISPER_CPP_FILES))
10+
WHISPER_CPP_SRCS_C = $(filter %.c,$(WHISPER_CPP_FILES))
11+
WHISPER_CPP_SRCS_CPP = $(filter %.cpp,$(WHISPER_CPP_FILES))
12+
WHISPER_CPP_SRCS = $(WHISPER_CPP_SRCS_C) $(WHISPER_CPP_SRCS_CPP)
13+
14+
WHISPER_CPP_OBJS = \
15+
$(LLAMAFILE_OBJS) \
16+
$(WHISPER_CPP_SRCS_C:%.c=o/$(MODE)/%.o) \
17+
$(WHISPER_CPP_SRCS_CPP:%.cpp=o/$(MODE)/%.o)
18+
19+
o/$(MODE)/whisper.cpp/whisper.cpp.a: $(WHISPER_CPP_OBJS)
20+
21+
$(WHISPER_CPP_OBJS): private \
22+
CCFLAGS += \
23+
-DGGML_MULTIPLATFORM
24+
25+
$(WHISPER_CPP_OBJS): private \
26+
CXXFLAGS += \
27+
-frtti \
28+
-Wno-alloc-size-larger-than \
29+
-Wno-deprecated-declarations
30+
31+
o/$(MODE)/whisper.cpp/server: \
32+
o/$(MODE)/whisper.cpp/server.o \
33+
o/$(MODE)/whisper.cpp/whisper.cpp.a \
34+
o/$(MODE)/llama.cpp/llama.cpp.a
35+
36+
$(WHISPER_CPP_OBJS): whisper.cpp/BUILD.mk
37+
38+
.PHONY: o/$(MODE)/whisper.cpp
39+
o/$(MODE)/whisper.cpp: \
40+
o/$(MODE)/whisper.cpp/server

0 commit comments

Comments
 (0)